package com.jsb.laundry.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 优惠券购买记录实体
 *
 * @author zmy
 * @create 2023-05-13 15:11
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(description = "优惠券模块")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CouponRecordDto implements Serializable {

    private static final long serialVersionUID = 197L;

    /**
     * 当前页  映射JSON "pageNum":"1"
     * 默认 第一页
     */
    @ApiModelProperty(value = "当前页(默认 1)")
    public int pageNum = 1;

    /**
     * 当前页大小
     * 默认 10
     */

    @ApiModelProperty("页大小(默认 10)")
    public int pageSize = 10;

    /**
     * 支付id
     */
    private String payId;

    private String id;
    /**
     * 优惠套餐id
     */
    private String tcId;
    /**
     * 用户id
     */
    private String userId;
    private String userName;
    private String openId;
    /**
     * 优惠套餐总价
     */
    private String price;
    /**
     * 邀请人id
     */
    private String appUserId;
    /**
     * 优惠券id
     */
    private String couponId;
    /**
     * 套餐中对应的优惠券的数量
     */
    private Integer couponNum;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 支付时间(优惠券的生效时间)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;
    /**
     * 优惠券的生效时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date beginTime;
    /**
     * 优惠券的失效时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;
    /**
     * 使用类型(0：未使用, 1:自己消费使用,2: 赠送)
     */
    private String useType;
    /**
     * 优惠券使用时间(自己消费和赠送时填充)
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date useTime;
    /**
     * 待领取截至时间
     */
    @JsonIgnore
    private Date expirationTime;
    private Long expirationTimeStamp;
    /**
     * 获取到优惠券的类型(0：自己购买,1:系统赠送(邀请新人赠送)，2:他人赠送)
     */
    private String getType;
    /**
     * 送券人id
     */
    private String giftUserId;

    /**
     * 优惠券当前是否可用（0：可用，1：不可用）
     */
    private String available;

    /**
     * 用户购买的优惠券id,
     * 支付使用优惠券时传这个id查询coupon_record表联表进而获取优惠金额
     */
    private String holdCouponId;
    /**
     * 优惠券面值
     */
    private String faceValue;

    /**
     * 优惠券标题
     */
    private String title;
    /**
     * 优惠券描述
     */
    private String remark;


    /**
     * 提现类型：0：立即提现，1：其他收益提现
     */
    private String withdrawalType;
    /**
     * 提现金额
     */
    private String withdrawalMoney;
    /**
     * 提现记录流水id
     */
    private String streamId;
    /**
     * 当前轮数
     */
    private int currentNumber;
    /**
     * 优惠券状态
     * 0:未使用
     * 1:已使用
     * 2:已过期
     * 3:待发放
     *
     */
    private String couponStatus;

}
